/******************************************************************* * * * Docsearch.awebrx * * * * © 1997 Yvon Rozijn * * * * Sök i AWeb-manualen. Skapa index om så begärs eller ingen * * indexfil existerar. Sök i indexfilen och skicka resultatet * * till AWeb. * * * *******************************************************************/ /******************************************************************* * * * För att använda den här som en söktjänst för din egna lokala * * HTML-filer, justera följande variabler: * * * * index = sökväg till indexfilen */ index = 'AWebPath:docs/docsearch.index' /* makeindex = kommandorad för att skapa indexet * * Indexskaparprogrammet har mallen DIR/A/M,TO/A * * DIR = lådor att söka efter #?.html-filer i (ej rekursivt) * * TO = namn på indexfil som skall skapas */ makeindex = 'AWebPath:docs/makeindex AWebPath:docs AWebPath:docs/plugins AWebPath:docs/settings AWebPath:docs/arexx' index /* resultfile = sökväg till fil där resultatet lagras */ resultfile = 'T:docsearch' /* searchindex = kommandorad för att söka i indexet. Sökargumenten * * läggs till kommandoraden. * * Sökprogrammet har mallen INDEX/A,TO/A,SEARCH/A/F * * INDEX = sökväg till indexfil * * TO = sökväg för sökresultat * * SEARCH = text att söka efter */ searchindex = 'AWebPath:docs/searchindex' index resultfile /* och justera HTML-koden i sökresultatet till att passa din * * tillämpning. * * * *******************************************************************/ options results options failat 20 parse source dummy1 dummy2 programname . parse arg sarg search='' regenerate='' interpret sarg if search='' & regenerate='' then exit su=upper(search) nl='0a'x if regenerate~='' | ~exists(index) then do 'chanopen "x-nil:docsearch/creating index"' ch=result 'open "x-nil:docsearch/creating index"' 'chanheader' ch '"content-type: text/html"' 'chanheader' ch '"pragma: no-cache"' doc='Skapar sökindex*N' doc=doc || '

Skapar index

*N' doc=doc || 'Ett sökindex skapas. Var god vänta...' 'chandata' ch '"' || doc || '" nl' 'chanclose' ch address command makeindex end if search='' then do 'go back' exit end if ~exists(index) then exit 'chanopen "file:///nil:docsearch/' || search || '"' ch=result 'chanheader' ch '"content-type: text/html"' 'chanheader' ch '"pragma: no-cache"' doc='Sökresultat:' search '*N' doc=doc || '*N' doc=doc || '*N' doc=doc || '

*"(logo)*"  Sökresultat:' search '

*N' 'chandata' ch '"' || doc || '" nl' doc='
*N' doc=doc || 'Sök i manualen: *N' doc=doc || '
*N' doc=doc || '
    ' 'chandata' ch '"' || doc || '" nl' 'open "file:///nil:docsearch/' || search || '"' 'allowcmd' address command searchindex '"' || search || '"' if open(f,resultfile,'R') then do do until length(block)<480 block=readch(f,480) /* Undvik problem om blocket slutar med "*". * searchindex borde dock vara bättre här... */ if right(block,1)="*" then block=block||readch(f,1) 'chandata' ch '"' || block || '"' end call close f address command 'delete' resultfile 'quiet' end doc='
*N' doc=doc || '
Tillbaka till index*N' doc=doc || '


*N' doc=doc || 'Tips: När du har lagt till nya manualfiler,*N' doc=doc || '*N' doc=doc || 'sökindexet igen för att få rätt sökresultat.*N
' 'chandata' ch '"' || doc || '" nl' 'chanclose' ch